print('#############可以使用isinstance()判断一个对象是否是Iterable对象#############')
print('#############这些可以直接作用于for循环的对象统称为可迭代对象：Iterable。#############')
from collections.abc import Iterable

print(isinstance([], Iterable))
print(isinstance({}, Iterable))
print(isinstance('abc', Iterable))
print('#############可以被next()函数调用并不断返回下一个值的对象称为迭代器：Iterator。#############')
from collections.abc import Iterator

print(isinstance([], Iterator))
print(isinstance({}, Iterator))
print(isinstance('abc', Iterator))
print('#############把list、dict、str等Iterable变成Iterator可以使用iter()函数。#############')
print(isinstance(iter([]), Iterator))
print(isinstance(iter({}), Iterator))
print(isinstance(iter('abc'), Iterator))
print(
    '#############Iterator甚至可以表示一个无限大的数据流，例如全体自然数。而使用list是永远不可能存储全体自然数的。#############')
